//#include <iostream>
//#include <vector>
//#include <algorithm>
//using namespace std;
//
//int main()
//{
//	int n, k;
//	cin >> n >> k;
//
//	int floor[2010] = { 0 };
//	for (int i = 0; i < n; ++i)
//	{
//		int tmp;
//		cin >> tmp;
//		++floor[tmp];
//	}
//
//	vector<pair<int, int>> vp;
//	for (int i = 2000; i >= 0; --i)
//		if (floor[i])
//			vp.push_back(make_pair(i, floor[i]));
//
//	int time = 0;
//	int i = 0;
//	int load = 0;
//	int top = vp[0].first;
//	while (load < k && i < vp.size())
//	{
//		if (top == 0) top = vp[i].first;
//		load += vp[i].second;
//
//		if (load >= k)
//		{
//			time += load / k * (top - 1) * 2;
//			load = load % k;
//			if (load != 0)
//				top = vp[i].first;
//			else
//				top = 0;
//		}
//		
//		++i;
//	}
//	
//	if (load != 0)
//	{
//		time += (top - 1) * 2;
//	}
//
//	cout << time << endl;
//
//	return 0;
//}